/*
 * File:   Location.h
 * Author: Michael Ziminsky
 *
 * Created on February 27, 2011, 12:25 AM
 */

#ifndef LOCATION_H
#define	LOCATION_H

#include <locale>
#include <boost/functional/hash.hpp>

namespace model
{
	class Location
	{
	public:
		const char col;
		const int row;

		Location(char, int);

		Location(const Location&);

		friend std::size_t hash_value(const Location&);

		friend std::ostream& operator <<(std::ostream&, const Location&);

		bool operator==(const Location&) const;

		bool operator!=(const Location&) const;

		bool operator<(const Location&) const;

		bool operator>(const Location&) const;

		bool operator<=(const Location&) const;

		bool operator>=(const Location&) const;
	};
} // namespace model

#endif	/* LOCATION_H */

